如何从excel中读取多个工作表
近期有学员学习《python文本分析:从入门到到精通》第四部分时,后台问如果要处理的excel数据是含有多个sheet表,我们该怎么处理。因为默认都是假设一个excel只有一个sheet,所以我一开始也没考虑到这种情况。
不过不用怕,明白问题就能找到解决办法。我用谷歌搜索
How to read mutiple sheets from one excel in Python?
打开stackoverflow,浏览了一番,看到这个解答。我对其中的第二条思路很感兴趣
解决思路:
读取excel文件,获得所有的sheet名
根据sheet名,再去读取excel中的不同的worksheet
##获取sheet名列表
import pandas as pd
xls = pd.ExcelFile('data.xlsx')
xls.sheet_names
运行结果
['莫干·遥远的山',
'莫干山青漫·一屋',
'莫干山山氧·开态',
'莫干山居图',
'莫干山野奢',
'莫干山慕色',
'莫干山西部时光山居',
'莫干山隐西39精品民宿',
'莫干山莫梵',
'莫干山蕨宿设计精品民宿']
现在我们按照sheet名来读取Excel文件
#还真的能读取
df = pd.read_excel('data.xlsx', sheet_name='莫干山居图')
df.head()
#还真的能读取
df = pd.read_excel('data.xlsx', sheet_name='莫干山蕨宿设计精品民宿')
df.head()
#还真的能读取
df = pd.read_excel('data.xlsx', sheet_name='莫干山慕色')
df.head()
合并多个sheet到一个sheet中
df_list = []
for sheetname in xls.sheet_names:
df = pd.read_excel('data.xlsx', sheet_name=sheetname)
df_list.append(df)
alldf = pd.concat(df_list)
alldf.to_excel(newdata.xlsx)
df
精选文章
你看到这里,你懂得